package main

import (
	"fmt"
	"regexp"
)

const text = `My email is ccmouse@gmail.com
email1 is abc@def.org
email2 is    kkk@qq.com
email3: is ddd@abc.com.cn
`

func main() {
	// re, er := regexp.Compile("ccmouse@gmail.com") //正则表达式匹配器
	// re := regexp.MustCompile("ccmouse@gmail.com") //正则表达式写的一定是正确的
	// re := regexp.MustCompile(`.+@.+\..+`) //.匹配任何字符 +一个或多个字符 *零个或多个字符
	// re := regexp.MustCompile(`[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+`)
	re := regexp.MustCompile(`([a-zA-Z0-9]+)@([a-zA-Z0-9]+)(\.[a-zA-Z0-9.].+)`) //返回()匹配的字符，()为提取的部分

	//re.Find()
	//match := re.FindString(text) //匹配一个，从text中找到第一个匹配表达式的字符串
	// match := re.FindAllString(text, -1) //匹配多个，n 匹配数量，-1找出所有符合匹配的
	match := re.FindAllStringSubmatch(text, -1) //找出所有匹配项及子匹配项(),-1所有匹配项
	for _, m := range match {                   //m[0]整个匹配串，m[1:]匹配子串
		fmt.Println(m)
	}

	// fmt.Println(match)
}
